/**
 * Created by Administrator on 2019/11/21 0021.
 */

import Axios from 'axios';
import WX from 'weixin-js-sdk';
export default{
  /**微信授权登陆**/
  Authorize:function(){
    return new Promise((resolve, reject) => {
      sessionStorage.removeItem('openId'); // 删除openId
      var turl=(location.href).split('/')[2];
      var getCode=(location.href).split('code=')[1];
      var wxcode='';
      if(typeof getCode!=='undefined'){
        wxcode=getCode.split('&')[0];
      }else{
        wxcode=''
      }
      var params = new URLSearchParams();
      params.append('thisUrl',location.href);
      params.append('wxCode',wxcode);
      Axios({
        method: 'post',
        url:'gp/bu/oauth!authorizeUser.do',
        data:params,
      }).then((res)=>{
        if(res.data.statusCode==300){
          window.location.href=res.data.object;
        }else if(res.data.statusCode==200){
          resolve(res.data.object.split('-----')[0])
        }
      });
    });
  },
  /**调取微信配置接口**/
  getWechatApi:function(){
    var jsApiList=[];
    for(var i=0; i<arguments.length; i++){
      jsApiList.push(arguments[i]);
    }
    return new Promise((resolve, reject) => {

      var params = new URLSearchParams();
      params.append('url',location.href);
      Axios({
        method: 'post',
        url:'gp/bu/wechat!getJsapi.do',
        data:params
      }).then((res)=> {
        if(res.data.result==true && res.data.statusCode==200){
          const wxConfig=res.data.object;
          resolve(res.data.object.accessToken)
          WX.config({
            beta: true,// 必须这么写，否则wx.invoke调用形式的jsapi会有问题
            debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
            appId: wxConfig.appid, // 必填，企业微信的corpID
            timestamp:wxConfig.timestamp, // 必填，生成签名的时间戳
            nonceStr: wxConfig.nonceStr, // 必填，生成签名的随机串
            signature: wxConfig.signature,// 必填，签名，见附录1
            jsApiList: jsApiList // 必填，需要使用的JS接口列表，所有JS接口列表见附录2
          });
        }else{
          reject(res)
        }
      });
    })
  },

  /**调取微信弹窗支付**/
  handleToPayWX:function(paramId,paramSn,paramPayAmt,paramBody,paramType){
    var params = new URLSearchParams();
    params.append('id',paramId);
    params.append('sn',paramSn);
    params.append('payAmt',paramPayAmt);
    params.append('body',paramBody);
    params.append('type',paramType);
    //  调取微信配置接口
    Axios({
      method: 'post',
      url:'gp/bu/wechat!prePay.do',
      data:params
    }).then((res)=> {
      if(res.data.result==true){
        var $wxConfig=JSON.parse(res.data.message);
        WX.ready(()=>{
            WX.chooseWXPay({
              timestamp:$wxConfig.timeStamp,
              nonceStr:$wxConfig.nonceStr,
              package:$wxConfig.package,
              signType:'MD5',
              paySign:$wxConfig.paySign,
              success:(res)=>{
                window.location.reload();
                const demandData={
                  id:paramId,
                };
                /**支付成功后推送消息**/
                var params = new URLSearchParams();
                params.append('demandData',JSON.stringify(demandData));
                Axios({
                  method: 'post',
                  url:'gp/bu/serviceDemandApp!sendPayMessage.do',
                  data:params
                }).then((res)=>{});
              },
              fail:function(res){
                alert('支付弹窗失败')
              },
              cancel:function(res){
                window.location.reload();
              }
          });
        })
      }else{
        alert(res.data.message)
      }
    });

  },
}
